From 4ebea5c1d1a10be0d0165da3b9c0e1fa82c3db3c Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sat, 21 May 2022 17:51:37 +0200
Subject: [PATCH] nping/Crypto.cc: fix build with libressl >= 3.5.0

Fix the following build failure with libressl >= 3.5.0:

Crypto.cc: In static member function 'static int Crypto::aes128_cbc_encrypt(u8*, size_t, u8*, u8*, size_t, u8*)':
Crypto.cc:139:26: error: aggregate 'EVP_CIPHER_CTX ctx' has incomplete type and cannot be defined
  139 |           EVP_CIPHER_CTX ctx;
      |                          ^~~

Fixes:
 - http://autobuild.buildroot.org/results/2e6eebbe2ed8305b88047bc92c19350c1ecada16

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Upstream: https://github.com/nmap/nmap/pull/2480
---
 nping/Crypto.cc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/nping/Crypto.cc b/nping/Crypto.cc
index 850438352..9f7c88686 100644
--- a/nping/Crypto.cc
+++ b/nping/Crypto.cc
@@ -70,7 +70,9 @@
 #include <openssl/evp.h>
 #include <openssl/err.h>
 
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined LIBRESSL_VERSION_NUMBER
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && \
+	((!defined LIBRESSL_VERSION_NUMBER) || \
+	(defined LIBRESSL_VERSION_NUMBER && LIBRESSL_VERSION_NUMBER >= 0x30500000L))
 #define HAVE_OPAQUE_EVP_PKEY 1
 #define FUNC_EVP_MD_CTX_init EVP_MD_CTX_reset
 #define FUNC_EVP_MD_CTX_cleanup EVP_MD_CTX_reset
-- 
2.35.1

